#ifndef MAPS_H_INCLUDED
#define MAPS_H_INCLUDED

#include <iostream>
#include <vector>
#include <string>

struct Node
{
    int x;
    int y;
    int f;
    int pid;
    int dir;
};

class Maps
{
    public:
        void LoadMap(int mapID);

        int GetMapSizeX();
        int GetMapSizeY();

        bool FindPath(int startX, int startY, int targetX, int targetY, std::vector<Node> &path);

        std::string GetMapName();

		int GetTeleportationID(int x, int y);
        int GetTeleMap(int teleID);
        int GetTeleX(int teleID);
        int GetTeleY(int teleID);

    private:
        std::vector<std::vector< int > > m_vectLayer1;
        std::vector<std::vector< int > > m_vectLayer2;
        std::vector<std::vector< int > > m_vectLayer3;
        std::vector<std::vector< int > > m_vectLayer4;
        std::vector<std::vector< int > > m_vectTeleportation;

        int m_numberOfTeleportation;

        std::vector<int> m_vectLayerPassability;

        std::string m_mapName;
        int m_mapSizeX;
        int m_mapSizeY;
        std::string m_mapTileset;
};

#endif // MAPS_H_INCLUDED
